package util;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import modelo.Oferta;
import modelo.Producto;

public class ProductUtils {

	public static BigDecimal getTotalPrice(
			Map<Oferta, List<Producto>> applingOffersToBuyOrder) {

		BigDecimal totalSuma = BigDecimal.ZERO;

		for (Oferta oferta : applingOffersToBuyOrder.keySet()) {

			for (Producto productoEnOferta : applingOffersToBuyOrder.get(oferta)) {
				totalSuma = totalSuma.add(precioProductoConDescuento(productoEnOferta, oferta) );
			}
		}

		return totalSuma;
	}

	public static BigDecimal getTotalPriceWithoutDiscount(
			Map<Oferta, List<Producto>> applingOffersToBuyOrder) {
		BigDecimal totalSuma = BigDecimal.ZERO;

		for (Oferta oferta : applingOffersToBuyOrder.keySet()) {

			for (Producto productoEnOferta : applingOffersToBuyOrder
					.get(oferta)) {
				totalSuma = totalSuma.add(productoEnOferta.getPrecio());
			}
		}

		return totalSuma;
	}

	public static BigDecimal precioProductoConDescuento(Producto produco,Oferta oferta) {
        return produco.getPrecio().multiply(
        		BigDecimal.ONE.subtract(
        				(new BigDecimal(oferta.getPorcentaje())).divide(new BigDecimal("100"))));
	}
	
	public static BigDecimal sumarTotalProductos(
			List<Producto> productosProcesando) {
		BigDecimal precioTotal = BigDecimal.ZERO;
		for (Producto producto : productosProcesando) {
			precioTotal = precioTotal.add(producto.getPrecio());
		}

		return precioTotal;
	}
}
